package com.company.pangu.aliyun.risk.request;

import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * <p>阿里云图片检测（同步）</p >
 * https://help.aliyun.com/document_detail/50170.html?spm=a2c4g.11186623.6.744.6bfa4850Vjcw2P
 *
 * @author Nikola Tesla
 * @version 1.0
 * @date 2021/4/6
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class RiskImageSyncScanRequest {

    /**
     * 该字段用于标识您的业务场景。
     */
    private String bizType = "sa";

    /**
     * 设置待检测图片。一张图片对应一个task。
     * 多张图片同时检测时，处理的时间由最后一个处理完的图片决定。
     * 通常情况下批量检测的平均响应时间比单张检测的要长。一次批量提交的图片数越多，响应时间被拉长的概率越高。
     */
    private List<Task> tasks;

    /**
     * 设置要检测的风险场景。计费依据此处传递的场景计算。
     * 一次请求中可以同时检测多张图片，每张图片可以同时检测多个风险场景，计费按照场景计算。
     * 例如，检测2张图片，场景传递porn和terrorism，计费会按照2张图片鉴黄，2张图片暴恐检测计算。
     * porn：图片智能鉴黄
     * terrorism：图片暴恐涉政
     * ad：图文违规
     * qrcode：图片二维码
     * live：图片不良场景
     * logo：图片logo
     */
    private List<String> scenes = Lists.newArrayList("porn", "terrorism");

    /**
     * 任务
     */
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static final class Task {

        /**
         * 检测对象对应的数据ID。(非必填)
         * 由大小写英文字母、数字、下划线（_）、短划线（-）、英文句号（.）组成，不超过128个字符，可以用于唯一标识您的业务数据。
         */
        private String dataId;

        /**
         * 图片链接(https)
         */
        private String url;

    }

}
